﻿using System;
using System.Collections.Generic;
using System.Text;

namespace Rarous.TexyNet.Modules
{
    /// <summary>
    /// Třída oobsahující informace o konfiguraci modulu nadpisů
    /// </summary>
    public class HeadingModule
    {
        #region Fields
        private bool allowedSurrounded;
        private bool allowedUnderlined;
        private int top;
        private int balancing;
        #endregion

        #region Constructors
        /// <summary>
        /// Konstruktor.
        /// </summary>
        public HeadingModule()
        {
            allowedSurrounded = true;
            allowedUnderlined = true;
            top = 1;
            balancing = 1;
        }

        /// <summary>
        /// Konstruktor.
        /// </summary>
        /// <param name="element"></param>
        public HeadingModule(Configuration.HeadingModuleElement element)
            : this()
        {
            ReadConfiguration(element);
        }
        #endregion

        #region Private Methods
        private void ReadConfiguration(Configuration.HeadingModuleElement element)
        {
            if (element == null)
            {
                return;
            }

            allowedSurrounded = element.AllowedSurrounded;
            allowedUnderlined = element.AllowedUnderlined;
            top = element.Top;
            balancing = element.Balancing;
        } 
        #endregion

        #region Properties
        /// <summary>
        /// Příznak, zda-li je povolen inline zápis nadpisů
        /// </summary>
        public bool AllowedSurrounded
        {
            get { return allowedSurrounded; }
            set { allowedSurrounded = value; }
        }

        /// <summary>
        /// Příznak, zda-li je povolen zápis nadpisů podtržením
        /// </summary>
        public bool AllowedUnderlined
        {
            get { return allowedUnderlined; }
            set { allowedUnderlined = value; }
        }

        /// <summary>
        /// Vrací nebo nastavuje nejvyšší úroveň nadpisů
        /// </summary>
        public int Top
        {
            get { return top; }
            set { top = value; }
        }

        /// <summary>
        /// ??
        /// </summary>
        public int Balancing
        {
            get { return balancing; }
            set { balancing = value; }
        }
        #endregion
    }
}
